package com.guldan.jaina.provider;

import com.guldan.core.dubbo.client.ResponseDTO;
import com.guldan.jaina.dto.datastat.datav.DatavDTO;
import com.guldan.jaina.dto.datastat.home.*;
import com.guldan.jaina.dto.datastat.report.MoneyStatDTO;
import com.guldan.jaina.dto.datastat.report.ReportSearchDTO;
import com.guldan.jaina.dto.datastat.report.SubsidyGrantStatDTO;
import com.guldan.jaina.dto.report.Points;
import com.guldan.jaina.dto.report.project.ProjectSearchDTO;

import java.util.List;

/**
 * Created by Silas.
 * Date: 2016/12/11
 * Time: 22:47
 */
public interface IReportProvider {

    ResponseDTO<List<Points>> projectMoneyStat(ProjectSearchDTO searchDTO);

    ResponseDTO<List<HomeQuickNavDTO>> getHomeQuickNavList();

    ResponseDTO<Part1DTO> getPart1DTO();

    ResponseDTO<Part2DTO> getPart2DTO();

    ResponseDTO<List<BatchRegistStatDTO>> getBatchRegistStatByDate(Integer searchType, String dateBegin, String dateEnd);

    ResponseDTO<List<HotProjectStatDTO>> getHotProjectStatList();


    ResponseDTO<List<MoneyStatDTO>> getMoneyStat(ReportSearchDTO searchDTO);


    ResponseDTO<List<SubsidyGrantStatDTO>> getPersonStat(ReportSearchDTO searchDTO);

    ResponseDTO<List<SubsidyGrantStatDTO>> getSubsidyGrantStatForArea(ReportSearchDTO searchDTO);

    ResponseDTO<List<SubsidyGrantStatDTO>> getSubsidyGrantStatForProject(ReportSearchDTO searchDTO);

    ResponseDTO<List<SubsidyGrantStatDTO>> getGenderStat(ReportSearchDTO searchDTO);

    ResponseDTO<List<SubsidyGrantStatDTO>> getNationStat(ReportSearchDTO searchDTO);

    ResponseDTO<List<SubsidyGrantStatDTO>> getBenefitAgeStat(ReportSearchDTO searchDTO);

    ResponseDTO<List<SubsidyGrantStatDTO>> getGenderStatForCitzen(ReportSearchDTO searchDTO);

    ResponseDTO<List<SubsidyGrantStatDTO>> getNationStatForCitzen(ReportSearchDTO searchDTO);

    ResponseDTO<List<SubsidyGrantStatDTO>> getAgeStatForCitzen(ReportSearchDTO searchDTO);

    ResponseDTO<List<SubsidyGrantStatDTO>> getAreaPersonStatForCitzen(ReportSearchDTO searchDTO);

    ResponseDTO<DatavDTO> getDatavDTO(Integer areaId);

    ResponseDTO<DatavDTO> getDatavDTO(String divisionCode);


}


